Software developers and publishers create and provide software for end users including individuals, students, businesses, etc. This software may be updated over time using updates from the developers and publishers. Additionally, a main software program may have related sub-components or optional components such as programs, data, resources and resource files, etc., that may be acquired and installed with, or at separate times from, the main software program. These related sub-components may also be updated over time using updates from the developers and publishers.
An end user may wish to acquire or update some or all of the related sub-components of the main program and/or may wish to acquire the main program or acquire updates to the main program at various points in time. In some cases, specific versions of the main program may properly operate only with specific versions of related applications or sub-components. If these specific versions are not kept synchronized at the device of the end user, abnormal program behaviors may occur.